package com.engine.salary.entity.datacollection.dto;

import com.cloudstore.eccom.pc.table.WeaTableType;
import com.engine.salary.annotation.*;
import com.engine.salary.util.excel.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Set;

/**
 * 数据采集-累计专项附加扣除
 * <p>Copyright: Copyright (c) 2022</p>
 * <p>Company: 泛微软件</p>
 *
 * @author qiantao
 * @version 1.0
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@SalaryTable(pageId = "a4f85287-e3f9-4275-adn9-7d06e54y67j8", tableType = WeaTableType.CHECKBOX, operates = {
        @SalaryTableOperate(text = "查看明细")
})
@Auth(page = "addUpDeduction")
public class AddUpDeductionDTO {

    /**
     * 主键id
     */
    @SalaryTableColumn(column = "id", display = false)
    private Long id;

    /**
     * 员工id
     */
    private Long employeeId;

    /**
     * 姓名
     */
    @ExcelProperty(index = 0)
    @SalaryTableColumn(text = "姓名", width = "10%", column = "username")
    @TableTitle(title = "姓名", dataIndex = "username", key = "username")
    @I18n
    private String username;

    /**
     * 个税扣缴义务人
     */
    @ExcelProperty(index = 1)
    @SalaryTableColumn(text = "个税扣缴义务人", width = "10%", column = "taxAgentName")
    @TableTitle(title = "个税扣缴义务人", dataIndex = "taxAgentName", key = "taxAgentName")
    private String taxAgentName;

    /**
     * 个税扣缴义务人id
     */
    private Long taxAgentId;

    /**
     * 部门
     */
    @ExcelProperty(index = 2)
    @SalaryTableColumn(text = "部门", width = "10%", column = "departmentName")
    @TableTitle(title = "部门", dataIndex = "departmentName", key = "departmentName")
    @I18n
    private String departmentName;

    /**
     * 手机号
     */
    @ExcelProperty(index = 3)
    @SalaryTableColumn(text = "手机号", width = "10%", column = "mobile")
    @TableTitle(title = "手机号", dataIndex = "mobile", key = "mobile")
    private String mobile;

    /**
     * 工号
     */
    @ExcelProperty(index = 4)
    @SalaryTableColumn(text = "工号", width = "10%", column = "jobNum")
    @TableTitle(title = "工号", dataIndex = "jobNum", key = "jobNum")
    private String jobNum;

    /**
     * 证件号码
     */
    @ExcelProperty(index = 5)
    @SalaryTableColumn(text = "证件号码", width = "10%", column = "idNo")
    @TableTitle(title = "证件号码", dataIndex = "idNo", key = "idNo")
    private String idNo;

    /**
     * 入职日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @ExcelProperty(index = 6, msg = "第7列，入职日期解析错误，标准格式应为yyyy-MM-dd，例如：2022-01-01")
    @SalaryTableColumn(text = "入职日期", width = "10%", column = "hiredate")
    @TableTitle(title = "入职日期", dataIndex = "hiredate", key = "hiredate")
    private String hiredate;

    /**
     * 累计子女教育
     */
    @ExcelProperty(index = 7, msg = "第8列，累计子女教育解析错误，请输入数字")
    @SalaryTableColumn(text = "累计子女教育", width = "10%", column = "addUpChildEducation")
    @TableTitle(title = "累计子女教育", dataIndex = "addUpChildEducation", key = "addUpChildEducation")
    @Encrypt
    private String addUpChildEducation;

    /**
     * 累计继续教育
     */
    @ExcelProperty(index = 8, msg = "第9列，累计继续教育教育解析错误，请输入数字")
    @SalaryTableColumn(text = "累计继续教育", width = "10%", column = "addUpContinuingEducation")
    @TableTitle(title = "累计继续教育", dataIndex = "addUpContinuingEducation", key = "addUpContinuingEducation")
    @Encrypt
    private String addUpContinuingEducation;

    /**
     * 累计住房贷款利息
     */
    @ExcelProperty(index = 9, msg = "第10列，累计住房贷款利息解析错误，请输入数字")
    @SalaryTableColumn(text = "累计住房贷款利息", width = "10%", column = "addUpHousingLoanInterest")
    @TableTitle(title = "累计住房贷款利息", dataIndex = "addUpHousingLoanInterest", key = "addUpHousingLoanInterest")
    @Encrypt
    private String addUpHousingLoanInterest;

    /**
     * 累计住房租金
     */
    @ExcelProperty(index = 10, msg = "第11列，累计住房租金解析错误，请输入数字")
    @SalaryTableColumn(text = "累计住房租金", width = "10%", column = "addUpHousingRent")
    @TableTitle(title = "累计住房租金", dataIndex = "addUpHousingRent", key = "addUpHousingRent")
    @Encrypt
    private String addUpHousingRent;

    /**
     * 累计赡养老人
     */
    @ExcelProperty(index = 11, msg = "第12列，累计赡养老人解析错误，请输入数字")
    @SalaryTableColumn(text = "累计赡养老人", width = "10%", column = "addUpSupportElderly")
    @TableTitle(title = "累计赡养老人", dataIndex = "addUpSupportElderly", key = "addUpSupportElderly")
    @Encrypt
    private String addUpSupportElderly;

    /**
     * 累计大病医疗
     */
    @ExcelProperty(index = 12, msg = "第13列，累计大病医疗解析错误，请输入数字")
    @SalaryTableColumn(text = "累计大病医疗", width = "10%", column = "addUpIllnessMedical")
    @TableTitle(title = "累计大病医疗", dataIndex = "addUpIllnessMedical", key = "addUpIllnessMedical")
    @Encrypt
    private String addUpIllnessMedical;

    @ExcelProperty(index = 13, msg = "第14列，累计婴幼儿照护解析错误，请输入数字")
    @SalaryTableColumn(text = "累计婴幼儿照护", width = "10%", column = "addUpInfantCare")
    @TableTitle(title = "累计婴幼儿照护", dataIndex = "addUpInfantCare", key = "addUpInfantCare")
    @Encrypt
    private String addUpInfantCare;

    @SalaryTableColumn(text = "操作", width = "20%", column = "operate")
    @TableTitle(title = "操作", dataIndex = "operate", key = "operate")
    private Set<String> opts;
}
